Short:    Asl/Arp/Req/Intuition/RT requester to RT/Asl patcher
Uploader: tboeckel@uni-paderborn.de (Thore Boeckelmann)
Author:   tboeckel@uni-paderborn.de (Thore Boeckelmann)
Type:     util/misc

TITLE
  AslToRT


VERSION
  39.8


AUTHOR
  Thore Böckelmann <tboeckel@uni-paderborn.de>


REQUIREMENTS
  Any Amiga® (compatible) computer with at least OS3.0 and 68020+ cpu.


DESCRIPTION
  AslToRT is a utility that is meant to replace RTPatch by Nico François, the
  original author of the ReqTools package. RTPatch has several bugs when running
  under OS3.x. It uses a very tricky mechanism to patch the desired libraries
  only when they are opened. This causes a very annoying behavior with
  asl.library. Under OS2.x this library kept its open counter equal to zero,
  which is no longer the fact for OS3.x. As a result the library's name is
  changed from "asl.library" to "asl.§ibrary", where the "§" stands for an
  unprintable character. The effect is, that asl.library will be loaded again
  and again, because it is no longer in memory with the correct name. This is
  very bad in the way Amiga shared libraries are intended to work. So you have
  no longer one copy of the library in memory, but several identical copies, of
  which each eats up your machines memory.

  AslToRT does all the things that RTPatch does, but in a (hopefully) much
  better way. Additionally you can choose very exactly which libraries and which
  functions should be patched to use the apropriate ReqTools function.

  From version 39.2 on AslToRT can behave like a fictious program called
  "RTToAsl", that means it can redirect all of reqtools' requesters to the
  equivalent asl requesters. The desired work mode is selected by the new
  PATCHMODE option.


USAGE
  You can start AslToRT from either Workbench or Shell with the following
  options:
 
  ASLFILE/S,ASLFONT/S,ASLSCREEN/S,ASLALL/S,INTUIAUTOREQ/S,INTUIEASYREQ/S,
  INTUIALL/S,REQFILE/S,REQFONT/S,REQLONG/S,REQSTRING/S,REQTEXT/S,REQCOLOR/S,
  REQALL/S,ARPFILE/S,ARPALL/S,REQTOOLSFILE/S,REQTOOLSFONT/S,REQTOOLSSCREEN/S,
  REQTOOLSALL/S,ALL/S,PATCHMODE,IGNOREHEIGHT/S,CENTERTEXT/S,OVERRIDE/S

  ASLFILE/S: patch asl.library's file requesters
  ASLFONT/S: patch asl.library's font requesters
  ASLSCREEN/S: patch asl.library's screenmode requesters
  ASLALL/S: patch all of asl.library's requesters
  INTUIAUTOREQ/S: patch intuition.library/AutoRequest()
  INTUIEASYREQ/S: patch intuition.library/EasyRequest()
  INTUIALL/S: patch all of intuition.library's requesters
  REQFILE/S: patch req.library's file requesters
  REQFONT/S: patch req.library's font requesters
  REQLONG/S: patch req.library/GetLong()
  REQSTRING/S: patch req.library/GetString()
  REQTEXT/S: patch req.library/TextRequest()
  REQCOLOR/S: patch req.library/ColorRequest()
  REQALL/S: patch all of req.library's requesters
  ARPFILE/S: patch arp.library's file requesters
  ARPALL/S: patch all of arp.library's requesters
  REQTOOLSFILE/S: patch reqtools.library's file requesters
  REQTOOLSFONT/S: patch reqtools.library's font requesters
  REQTOOLSSCREEN/S: patch reqtools.library's screenmode requesters
  REQTOOLSALL/S: patch all of reqtools.library's requesters
  ALL/S: patch all requesters of every library (asl/arp/req/intuition/reqtools)
  PATCHMODE: either ASL or REQTOOLS (default: REQTOOLS)
  IGNOREHEIGHT/S: ignore the height of file/font/screenmode requesters and use
    ReqTools' preferred window height
  CENTERTEXT/S: center the body text of AutoRequest()/EasyRequest()ers
  OVERRIDE/S: override fallback to asl.library for some unsupported features and
    use ReqTools requesters nevertheless

  You must specify at least one of these options, else AslToRT will exit
  immediately without patching anything.

  You can start and quit AslToRT at any time. Only requesters allocated after
  running AslToRT will be redirected to ReqTools. To quit AslToRT simply start
  it again.


INSTALLATION
  Copy AslToRT where ever you want, but SYS:WBStartup is a very good place


KNOWN BUGS
  reqtools.library is not able to emulate all details of asl.library. Especially
  the very new functionality introduced with asl.library V44 (OS3.9) cannot be
  done with reqtools.

  Some requesters by intuition/AutoRequest() cannot be patched to
  reqtools.library because they use some tricky mechanisms to place the text
  within the window, which reqtools.library cannot do (i.e. the device info
  requester of DiskSalv V2+).

  Most of Workbench's and dos.library's message requesters can be redirected to
  reqtools.library, but some cannot. These are the requesters that are build by
  intuition/BuildSysRequest() and intuition/BuildEasyRequest() and are displayed
  asynchronously. Although reqtools.library itself can do the same thing it is
  not possible to emulate intuiton.library's way by reqtools.library (i.e.
  Workbench's Version/Copyright requester).

  Since version 39.2 you can redirect reqtools' requesters to asl, but the
  asychronous requesters of reqtools cannot be emulated by asl, therefore these
  requesters will not be redirected. But as it is very hard to find programs
  using reqtools.library directly these days I assume this is not a very big
  drawback.

  For those who are interested, AslToRT patches the following functions (if
  enabled via options):

  asl.library:
    AllocAslRequest()
    FreeAslRequest()
    AslRequest()

  intuition.library:
    AutoRequest()
    EasyRequestArgs()

  req.library:
    FileRequester()
    GetLong()
    GetString()
    NewGetString()
    TextRequest()
    ColorRequester()
    ExtendedColorRequester()

  arp.library:
    FileRequest()

  reqtools.library:
    rtAllocRequest()
    rtFreeRequest()
    rtFreeFileList()
    rtChangeReqAttr()
    rtFileRequest()
    rtFontRequest()
    rtScreenModeRequest()


HISTORY
  39.1 (03.01.2001):
    - initial Aminet release

  39.2 (10.05.2001):
    - result for intuition/AutoRequest() was swapped. Fixed.
    - added possibility to use AslToRT for redirection of reqtools requesters to
      asl instead of vice versa.

  39.3 (11.06.2001):
    - sometimes files didn't pass the filter functions because the current
      directory wasn't set correctly. Thus WBPattern didn't allow to select any
      file. This is fixed now. Thanks to Gerhard Pircher for his testing.
    - system failure requesters are now centered on the screen
    - rewrote TagList handling
    - when using the same asl requester several times each requester had the
      name of the first request set, instead of a new one. Thanks to Gernod
      Schomberg for that hint.

  39.4 (16.07.2001):
    - added tool ShowReqs. This one will print a list which process allocated
      which kind of requester
    - when using Asl->RT mode AslToRT will fall back to Asl requesters if some
      unsupported functionality of Asl is used (custom screen modes, custom draw
      modes, etc). If you don't want that but see the RT requesters
      nevertheless, then use the OVERRIDE option to force AslToRT to use
      sub-functional RT requesters.
    - the filter functions should now finally filter correctly. Many thanks to
      Gerhard Pircher for his constant testing.
    - new option CENTERTEXT
    - added some security checks to avoid invalid default filenames

  39.5 (03.08.2001):
    - font and screenmode requesters never returned a successful selection due
      to some changes made in the last release (ASL -> RT mode). Thanks to Guido
      Mersmann and Klaus Just for reporting this bug.

  39.6 (23.08.2001):
    - file requesters didn't use the old style IDCMP and filter functions. This
      is fixed now. I don't know which programs still use these obsolete
      functions, but nevertheless: it is working now.
    - AslToRT was exiting immediately when using the ALL option and either
      arp.library or req.library was not installed. This is fixed now. Not
      installed libraries will be ignored now, even if the corresponding options
      are specified.
    - emulated Asl file requesters didn't accept empty file selections, even if
      you selected a directory. MakeCD suffered from this, because you had to
      selected at least one file to make MakeCD recognize your directory
      selection.

  39.7 (03.10.2001):
    - file requesters didn't keep their directory buffer in ASL -> RT mode. This
      is fixed now.
    - when operating in RT->Asl mode the inital drawer was the same as the
      requester title. At least this bug appeared with PerfectPaint. Thanks to
      Stefan Martens for his hint.
    - when operating in RT->Asl mode the inital drawer contained a trailing "/".
      Thus PerfectPaint was not able to load a picture, because it seems to
      build the complete path itself instead of using dos/AddPart(). Thanks to
      Stefan Martens for his hint.

  39.8 (02.04.2002):
    - AutoRequest() and EasyRequest() now use the underscore character to
      highlight hotkeys for gadgets. Very few programs seem to use this, as
      intuition doesn't support this!
    - the ReqTools patches produced a wrong rtFileList for asynchronous
      requesters. Thanks to Stefan Martens for his hint.


COPYRIGHT AND DISCLAIMER
  AslToRT is copyrighted 2001 by Thore Böckelmann.
  All rights reserved. This program is freeware, so no financial donations  
  required. Redistribution allowed if the package is left unchanged. The author
  is not responsible for any damage caused by the use or misuse of this
  documentation and/or the program(s) it describes.

  AslToRT uses the SmartReadArgs package by Thomas Aglassinger.


SEE ALSO
  ReqTools 2.9 User package

